import Vue from "vue";
import App from "./App.vue";
// 6.2 导入路由模块
import router from "./router";
// 样式初始化
import "@/styles/reset.css";
import "@/styles/iconfont.css";

// 全局注册 Vant 组件 或者 函数
import {Toast, Notify, Image as VanImage, Dialog, NavBar, Icon, Uploader, Field, ActionSheet, Tab, Tabs, List, PullRefresh, Button, SwipeCell, Empty, Search} from "vant";

Vue.use(Toast);
// console.log(typeof Toast);   // 轻提示是一个函数 function
// 全局注册 Toast 函数，会自动在 Vue 的 prototype 上挂载 $toast 方法，便于在组件内通过 this.$toast 调用。
Vue.use(Notify);
// 全局注册，组件内通过 this.$notify() 调用
Vue.use(VanImage);
Vue.use(Dialog);
// 全局注册，组件内通过 this.$dialog() 调用
Vue.use(NavBar);
Vue.use(Icon);
Vue.use(Uploader);
Vue.use(Field);
Vue.use(ActionSheet);
Vue.use(Tab);
Vue.use(Tabs);
Vue.use(List);
Vue.use(PullRefresh);
Vue.use(Button);
Vue.use(SwipeCell);
Vue.use(Empty);
Vue.use(Search);

Vue.config.productionTip = false;

import axios from "@/utils/request";
// 全局过滤器  在任意组件都能使用
Vue.filter("imgUrl", (val) => {
	// if (val) {
	// 	if (val === "") {
	if (!val) {
		// 取反 undefined跟空 都是假值
		// 在JS文件中，本地图片需要导入后，才能使用其打包后的路径
		return require("@/assets/timg (1).jpg");
	} else if (val.indexOf("http") === -1) {
		return axios.defaults.baseURL + val;
	} else {
		return val;
	}
	// }
});
// Vue.filter("imgUrl", (val) => (val.indexOf("http") === -1 ? axios.defaults.baseURL + val : val));

// 通过过滤器实现时间的格式化处理
import moment from "moment";
Vue.filter("formatDate", (val) => {
	return moment(val).format("YYYY-MM-DD");
});
// Vue.filter("formatDate", (val) => {
// 	if (val) {
// 		return val.slice(0, 10);
// 	} // 直接用原生截取 直接返回有报错问题 需要判断val存在
// });

// 有小时的过滤器
Vue.filter("formatTime", (val) => {
	// console.log(val)
	if (val) {
		return val.replace("T", " ").replace(".000Z", "");
	}
});

//自定义指令 自动聚焦
Vue.directive("gfocus", {
	// 新插入的标签（组件）才会触发  原本就存在的不会触发
	// inserted(e) {
	// 	e.focus();
	// },
	//对应数据/标签更新  时, 此方法执行
	update(el) {
		el.focus();
	},
});
new Vue({
	router,
	// 6.3 把路由实例添加到 Vue 中
	render: (h) => h(App),
}).$mount("#app");
